﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entidades.Karaoke;
using Negocio.Karaoke;
using Entidades.Generico;

public partial class Karaoke_Gestion_frmSolicitaActCancion : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        GenUsuario usuario = (GenUsuario)Session["Usuario"];

        if (!Page.IsPostBack)
        {
            if (usuario == null || usuario.Usuario == null || usuario.Usuario.Length==0)
            {
                Response.Redirect("~/Login.aspx?pag=frmSolicitaActCancion.aspx");
            }
            else {

                if (usuario.Perfil.Equals("Administrador de M.A."))
                {
                    lblDatosUsuaio.Text = usuario.Nombre + " - " + usuario.Perfil + " (" + usuario.Localidad + ")";
                    CargarIdioma();
                    CargarGenero();
                    CargarTipo();
                    CargarMotivo();
                }
                else
                    Response.Redirect("~/Login.aspx?pag=frmSolicitaActCancion.aspx&error=Usuario no tiene permisos para acceder al módulo");
                
            }
                

        }
    }

    public void CargarIdioma()
    {
        List<KarIdioma> lista = KarIdiomaBLL.ListarIdiomaActCancion();
        dwlIdioma.DataSource = lista;
        dwlIdioma.DataTextField = "idioma";
        dwlIdioma.DataValueField = "idIdioma";
        dwlIdioma.DataBind();
    }

    public void CargarGenero()
    {
        List<KarCategoria> lista = KarCategoriaBLL.ListarCategoriaActCancion();
        dwlGenero.DataSource = lista;
        dwlGenero.DataTextField = "categoria";
        dwlGenero.DataValueField = "iDCategoria";
        dwlGenero.DataBind();
    }

    public void CargarTipo()
    {
        List<KarTipoActualizacion> lista = KarTipoActualizacionBLL.ListarKarTipoActualizacion();
        dwlCambio.DataSource = lista;
        dwlCambio.DataTextField = "tipoActualizacion";
        dwlCambio.DataValueField = "idTipoActualizacion";
        dwlCambio.DataBind();
    }

    public void CargarMotivo()
    {
        List<KarTipoMotivo> lista = KarTipoMotivoBLL.ListarKarTipoMotivo(1);
        dwlMotivo.DataSource = lista;
        dwlMotivo.DataTextField = "motivo";
        dwlMotivo.DataValueField = "idMotivo";
        dwlMotivo.DataBind();
    }

    protected void dwlIdioma_SelectedIndexChanged(object sender, System.EventArgs e)
    {


        if (dwlIdioma.SelectedIndex != 0)
        {
            carga_combos("1");
        }
        else
        {
            if (dwlGenero.SelectedIndex != 0) {

                dwlCantante.DataSource = KarConsultarCancionBLL.ListarConsultarCancionesFiltros(0,Int32.Parse(dwlGenero.SelectedValue),"","","1");
                dwlCantante.DataValueField = "cantante";
                dwlCantante.DataTextField = "cantante";
                dwlCantante.DataBind();
            }
        }


    }

    protected void dwlGenero_SelectedIndexChanged(object sender, System.EventArgs e)
    {

        if (dwlGenero.SelectedIndex != 0)
        {
            carga_combos("2");
        }
        else
        {
            if (dwlIdioma.SelectedIndex != 0)
            {

                dwlCantante.DataSource = KarConsultarCancionBLL.ListarConsultarCancionesFiltros(Int32.Parse(dwlIdioma.SelectedValue), 0, "", "", "1");
                dwlCantante.DataValueField = "cantante";
                dwlCantante.DataTextField = "cantante";
                dwlCantante.DataBind();
            }
            else {
                dwlCantante.ClearSelection();
                dwlCantante.DataBind();
            }
        }
    }

    protected void dwlCantante_SelectedIndexChanged(object sender, System.EventArgs e)
    {

            carga_combos("3");

    }

    public void carga_combos(string opc)
    {
        if (opc == "1")
        {
            string strIdioma = dwlIdioma.SelectedValue;

            if (strIdioma != "0"){
                dwlCantante.DataSource = KarConsultarCancionBLL.ListarConsultarCancionesFiltros(Int32.Parse(dwlIdioma.SelectedValue), 0, "", "", "1");
                dwlCantante.DataValueField = "cantante";
                dwlCantante.DataTextField = "cantante";
                dwlCantante.DataBind();
            }

        }
        else if (opc == "2")
        {
            string strGenero = dwlGenero.SelectedValue;

            if (strGenero != "0" && dwlIdioma.SelectedIndex == 0)
            {
                dwlCantante.DataSource = KarConsultarCancionBLL.ListarConsultarCancionesFiltros(0, Int32.Parse(strGenero), "", "", "1");
                dwlCantante.DataValueField = "cantante";
                dwlCantante.DataTextField = "cantante";
                dwlCantante.DataBind();
            }
            else if (strGenero != "0" && dwlIdioma.SelectedIndex != 0)
            {

                dwlCantante.DataSource = KarConsultarCancionBLL.ListarConsultarCancionesFiltros(Int32.Parse(dwlIdioma.SelectedValue), Int32.Parse(strGenero), "", "", "1");
                dwlCantante.DataValueField = "cantante";
                dwlCantante.DataTextField = "cantante";
                dwlCantante.DataBind();
            }

        }
        else if (opc == "3")
        {
            string strCantante = dwlCantante.SelectedValue;

            dwlTitulo.DataSource  = KarConsultarCancionBLL.ListarConsultarCancionesFiltros(0, 0, strCantante, "", "0");
            dwlTitulo.DataValueField = "idCancion";
            dwlTitulo.DataTextField = "titulo";
            dwlTitulo.DataBind();
        }
    }

    protected void btnGuardar_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
        KarSolicitudActualizacionCancion karSol = new KarSolicitudActualizacionCancion();

        
        karSol.IdTipoActualizacion = Int32.Parse(dwlCambio.SelectedValue);
        karSol.IdMotivo = Int32.Parse(dwlMotivo.SelectedValue);
        karSol.Observacion = txtObservacion.Text;
        karSol.IdCancion = Int32.Parse(dwlTitulo.SelectedValue);
        karSol.CodUsuario = "admin";

        int rptaEje = KarSolicitudActualizacionCancionBLL.AgregarSolicitudActualizacionCancion(karSol);

        if (rptaEje > 0)
        {
            cleanFields();
            lblExito.Text = "Se genero la solicitud de cambio Nro:" + rptaEje + ", con éxito";
        }
        else { 
            lblError.Text = "Se genero un error al generar solicitud";
        }

    }

    private void cleanFields() {
        dwlGenero.SelectedIndex = 0;
        dwlIdioma.SelectedIndex = 0;
        dwlCantante.Items.Clear();
        dwlTitulo.Items.Clear();
        dwlMotivo.SelectedIndex = 0;
        dwlCambio.SelectedIndex = 0;
        txtObservacion.Text= "";
    }
}